var window = {};
! function() {
    var a, b, c, d;
    ! function() {
        var e = {}, f = {};
        a = function(a, b, c) {
            e[a] = {
                deps: b,
                callback: c
            }
        }, d = c = b = function(a) {
            function n(b) {
                var c, d, e, f, g;
                if ("." !== b.charAt(0)) return b;
                for (c = b.split("/"), d = a.split("/").slice(0, -1), e = 0, f = c.length; f > e; e++)
                    if (g = c[e], ".." === g) d.pop();
                    else {
                        if ("." === g) continue;
                        d.push(g)
                    }
                return d.join("/")
            }
            var j, c, g, h, i, k, l, m;
            if (d._eak_seen = e, f[a]) return f[a];
            if (f[a] = {}, !e[a]) throw new Error("Could not find module " + a);
            for (c = e[a], g = c.deps, h = c.callback, i = [], k = 0, l = g.length; l > k; k++) "exports" === g[k] ? i.push(j = {}) : i.push(b(n(g[k])));
            return m = h.apply(this, i), f[a] = j || m
        }
    }(), a("promise/all", ["./utils", "exports"], function(a, b) {
        "use strict";

        function e(a) {
            var b = this;
            if (!c(a)) throw new TypeError("You must pass an array to all.");
            return new b(function(b, c) {
                function h(a) {
                    return function(b) {
                        i(a, b)
                    }
                }

                function i(a, c) {
                    e[a] = c, 0 === --f && b(e)
                }
                var g, j, e = [],
                    f = a.length;
                for (0 === f && b([]), j = 0; j < a.length; j++) g = a[j], g && d(g.then) ? g.then(h(j), c) : i(j, g)
            })
        }
        var c = a.isArray,
            d = a.isFunction;
        b.all = e
    }), a("promise/asap", ["exports"], function(a) {
        "use strict";

        function e() {
            return function() {
                process.nextTick(i)
            }
        }

        function f() {
            var a = 0,
                b = new c(i),
                d = document.createTextNode("");
            return b.observe(d, {
                characterData: !0
            }),
            function() {
                d.data = a = ++a % 2
            }
        }

        function g() {
            return i
        }

        function i() {
            var a, b, c, d;
            for (a = 0; a < h.length; a++) b = h[a], c = b[0], d = b[1], c(d);
            h = []
        }

        function k(a, b) {
            var c = h.push([a, b]);
            1 === c && j()
        }
        var j, b = "undefined" != typeof window ? window : {}, c = b.MutationObserver || b.WebKitMutationObserver,
            h = [];
        j = "undefined" != typeof process && "[object process]" === {}.toString.call(process) ? e() : c ? f() : g(), a.asap = k
    }), a("promise/cast", ["exports"], function(a) {
        "use strict";

        function b(a) {
            if (a && "object" == typeof a && a.constructor === this) return a;
            var b = this;
            return new b(function(b) {
                b(a)
            })
        }
        a.cast = b
    }), a("promise/config", ["exports"], function(a) {
        "use strict";

        function c(a, c) {
            return 2 !== arguments.length ? b[a] : (b[a] = c, void 0)
        }
        var b = {
            instrument: !1
        };
        a.config = b, a.configure = c
    }), a("promise/polyfill", ["./promise", "./utils", "exports"], function(a, b, c) {
        "use strict";

        function f() {
            var a = "Promise" in window && "cast" in window.Promise && "resolve" in window.Promise && "reject" in window.Promise && "all" in window.Promise && "race" in window.Promise && function() {
                    var a;
                    return new window.Promise(function(b) {
                        a = b
                    }), e(a)
                }();
            a || (window.Promise = d)
        }
        var d = a.Promise,
            e = b.isFunction;
        c.polyfill = f
    }), a("promise/promise", ["./config", "./utils", "./cast", "./all", "./race", "./resolve", "./reject", "./asap", "exports"], function(a, b, c, d, e, f, g, h, i) {
        "use strict";

        function v(a) {
            if (!m(a)) throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");
            if (!(this instanceof v)) throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
            this._subscribers = [], w(a, this)
        }

        function w(a, b) {
            function c(a) {
                F(b, a)
            }

            function d(a) {
                H(b, a)
            }
            try {
                a(c, d)
            } catch (e) {
                d(e)
            }
        }

        function x(a, b, c, d) {
            var f, g, h, i, e = m(c);
            if (e) try {
                f = c(d), h = !0
            } catch (j) {
                i = !0, g = j
            } else f = d, h = !0;
            E(b, f) || (e && h ? F(b, f) : i ? H(b, g) : a === A ? F(b, f) : a === B && H(b, f))
        }

        function C(a, b, c, d) {
            var e = a._subscribers,
                f = e.length;
            e[f] = b, e[f + A] = c, e[f + B] = d
        }

        function D(a, b) {
            var c, d, g, e = a._subscribers,
                f = a._detail;
            for (g = 0; g < e.length; g += 3) c = e[g], d = e[g + b], x(b, c, d, f);
            a._subscribers = null
        }

        function E(a, b) {
            var d, c = null;
            try {
                if (a === b) throw new TypeError("A promises callback cannot return that same promise.");
                if (l(b) && (c = b.then, m(c))) return c.call(b, function(c) {
                    return d ? !0 : (d = !0, b !== c ? F(a, c) : G(a, c), void 0)
                }, function(b) {
                    return d ? !0 : (d = !0, H(a, b), void 0)
                }), !0
            } catch (e) {
                return d ? !0 : (H(a, e), !0)
            }
            return !1
        }

        function F(a, b) {
            a === b ? G(a, b) : E(a, b) || G(a, b)
        }

        function G(a, b) {
            a._state === y && (a._state = z, a._detail = b, j.async(I, a))
        }

        function H(a, b) {
            a._state === y && (a._state = z, a._detail = b, j.async(J, a))
        }

        function I(a) {
            D(a, a._state = A)
        }

        function J(a) {
            D(a, a._state = B)
        }
        var l, m, o, p, q, r, s, t, y, z, A, B, j = a.config;
        a.configure, l = b.objectOrFunction, m = b.isFunction, b.now, o = c.cast, p = d.all, q = e.race, r = f.resolve, s = g.reject, t = h.asap, j.async = t, y = void 0, z = 0, A = 1, B = 2, this.Promise = v, v.prototype = {
            constructor: v,
            _state: void 0,
            _detail: void 0,
            _subscribers: void 0,
            then: function(a, b) {
                var e, c = this,
                    d = new this.constructor(function() {});
                return this._state ? (e = arguments, j.async(function() {
                    x(c._state, d, e[c._state - 1], c._detail)
                })) : C(this, d, a, b), d
            },
            "catch": function(a) {
                return this.then(null, a)
            }
        }, v.all = p, v.cast = o, v.race = q, v.resolve = r, v.reject = s, i.Promise = v
    }), a("promise/race", ["./utils", "exports"], function(a, b) {
        "use strict";

        function d(a) {
            var b = this;
            if (!c(a)) throw new TypeError("You must pass an array to race.");
            return new b(function(b, c) {
                var e, f;
                for (f = 0; f < a.length; f++) e = a[f], e && "function" == typeof e.then ? e.then(b, c) : b(e)
            })
        }
        var c = a.isArray;
        b.race = d
    }), a("promise/reject", ["exports"], function(a) {
        "use strict";

        function b(a) {
            var b = this;
            return new b(function(b, c) {
                c(a)
            })
        }
        a.reject = b
    }), a("promise/resolve", ["exports"], function(a) {
        "use strict";

        function b(a) {
            var b = this;
            return new b(function(b) {
                b(a)
            })
        }
        a.resolve = b
    }), a("promise/utils", ["exports"], function(a) {
        "use strict";

        function b(a) {
            return c(a) || "object" == typeof a && null !== a
        }

        function c(a) {
            return "function" == typeof a
        }

        function d(a) {
            return "[object Array]" === Object.prototype.toString.call(a)
        }
        var e = Date.now || function() {
                return (new Date).getTime()
            };
        a.objectOrFunction = b, a.isFunction = c, a.isArray = d, a.now = e
    }), b("promise/polyfill").polyfill()
}();